#include using namespace std; using vi = vector; using qi = queue; using vvi = vector>; using vp = vector>; using pii = pair; using hm = unordered_map>; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vp delta = {pii(-1, 0), pii(1, 0), pii(0, 1), pii(0, -1)}; int t, n, R, C, r, c, u, d, dr, dc, nr, nc; cin >> t; while (t--) { cin >> n >> R >> C; qi q; vvi D; hm M; for (int i = 0; i < R; i++) { D.push_back(vi(C, -1)); } for (int i = 0; i < n; i++) { cin >> r >> c; D[r][c] = 0; q.push(r*C+c); } // BFS while (!q.empty()) { u = q.front(); q.pop(); r = u/C; c = u%C; d = D[r][c]; for (pii p : delta) { dr = p.first; dc = p.second; nr = r+dr; nc = c+dc; if (0<=nr && nr= mid) { found = 1; } if (found) { break; } } if (found) { break; } } } if (!found && mid != 0) { hi = mid-1; } else { lo = mid+1; } } cout << hi << '\n'; } } return 0; }